package com.youdianda.controller.sys;

import com.youdianda.dto.SysRoleDTO;
import com.youdianda.dto.SysRolePageDTO;
import com.youdianda.result.Result;
import com.youdianda.service.SysRoleService;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@Slf4j
@RequestMapping("/sys_role")
@Api("角色管理接口")
public class SysRoleController {

    @Autowired
    private SysRoleService sysRoleService;

    /**
     * 角色分页查询
     * @param sysRolePageDTO
     * @return
     */
    @GetMapping("/list")
    public Result listRolePage(SysRolePageDTO sysRolePageDTO) {
        log.info("角色分页查询：{}", sysRolePageDTO);
        return sysRoleService.listRolePage(sysRolePageDTO);
    }

    /**
     * 角色修改
     * @param sysRoleDTO
     * @return
     */
    @PostMapping("/update")
    public Result updateRole(@RequestBody SysRoleDTO sysRoleDTO) {
        log.info("角色修改：{}", sysRoleDTO);
        return sysRoleService.updateRole(sysRoleDTO);
    }

    /**
     * 根据id查询角色详情
     * @return
     */
    @GetMapping("/rowInfo")
    public Result getRoleById(String id) {
        log.info("根据id查询角色详情：id = {}", id);
        return sysRoleService.getRoleById(id);
    }

    /**
     * 查询全部角色数据
     * @return
     */
    @GetMapping("/allData")
    public Result listAllRole() {
        log.info("查询全部角色数据");
        return sysRoleService.listAllRole();
    }

    /**
     * 角色添加
     * @param sysRoleDTO
     * @return
     */
    @PostMapping("/add")
    public Result addRole(@RequestBody SysRoleDTO sysRoleDTO) {
        log.info("角色添加: {}", sysRoleDTO);
        return sysRoleService.addRole(sysRoleDTO);
    }

    /**
     * 根据id删除角色
     * @param id
     * @return
     */
    @GetMapping("/del")
    public Result deleteRoleById(String id) {
        log.info("角色删除: id = {}", id);
        return sysRoleService.deleteRoleById(id);
    }
}
